//引入express模块
const express=require('express');
//引入连接池模块
const pool=require('../pool.js');
//console.log(pool);
//创建路由器对象
const r=express.Router();
//1.用户注册(post /reg)
//http://127.0.0.1:8080/v1/users/reg
r.post('/reg',(req,res,next)=>{
  //获取流传递的数据
  var obj=req.body;
  console.log(obj);
  //执行SQL命令，将数据插入到数据库
  pool.query('insert into xz_user set?',[obj],(err,result)=>{
    if(err){
	  //如果有错误，把错误交给后边错误处理中间件
	  next(err);
	}else{
	  //否则没有问题
	  console.log(result);
      res.send({code:200,msg:'注册成功'});
	}	
  });  
});
//2.用户登陆(get /login/用户名&密码)
//http://127.0.0.1:8080/v1/users/login/range&888888
r.get('/login/:uname&:upwd',(req,res,next)=>{
  //获取路由传参的数据
  var obj=req.params;
  console.log(obj);
  //执行SQL命令
  pool.query('select uid,uname from xz_user where uname=? and upwd=?',[obj.uname,obj.upwd],(err,result)=>{
    if(err){
	  next(err);//把错误传递给下一个中间件
	}else{
	  console.log(result);
	  //结果是数组，如果数组长度为0响应登录失败，否则登陆成功
	  if(result.length===0){
	    res.send({code:201,msg:'登陆失败'});
	  }else{
	    res.send({code:200,msg:'登录成功'});
	  }
	}
  });
});
//3.修改用户(put /编号&邮箱&手机&姓名&性别)
//http://127.0.0.1:8080/v1/users/5&ran@163.com&18787878723&然桑&1
r.put('/:uid&:email&:phone&:user_name&:gender',(req,res,next)=>{
  //获取路由传参的数据
  var obj=req.params;
  console.log(obj);
  //执行SQL命令
  pool.query('update xz_user set? where uid=?',[obj,obj.uid],(err,result)=>{
    if(err){
	  next(err);
	}else{
	  console.log(result);
	  //返回结果是对象，如果对象下的affectedRows为0说明修改失败，否则修改成功
	  if(result.affectedRows===0){
	    res.send({code:201,msg:'修改失败'});
	  }else{
	    res.send({code:200,msg:'修改成功'});
	  }	  
	}
  });  
});
//4.查找用户(get /编号)
//http://127.0.0.1:8080/v1/users/3
r.get('/:uid',(req,res,next)=>{
  //获取路由传参的数据
  var obj=req.params;
  console.log(obj);
  //执行SQL命令
  pool.query('select uid,uname,email,phone from xz_user where uid=?',[obj.uid],(err,result)=>{
    if(err){
	  next(err);
	}else{
	  console.log(result);
	  //结果为数组，如果数组长度为0说明用户不存在，否则用户存在
	  if(result.length===0){
	    res.send({code:201,msg:'该用户不存在'});
	  }else{
	    res.send({code:200,msg:'查找成功',data:result[0]});
	  }	  
	}
  });  
});
//5.用户列表(get /)
//http://127.0.0.1:8080/v1/users?pno=1&count=5
r.get('/',(req,res,next)=>{
  //获取查询字符串传递的数据
  var obj=req.query;
  console.log(obj);
  //判断是否为空，如果为空设置默认值
  if(!obj.pno){
    obj.pno=1;
  }
  if(!obj.count){
    obj.count=3;
  }
  console.log(obj);
  //计算开始查询的值
  var start=(obj.pno-1)*obj.count;
  //将每页的数据量转为数值型
  var size=parseInt(obj.count);
  //执行SQL命令
  pool.query('select uid,uname,email,phone from xz_user limit ?,?',[start,size],(err,result)=>{
    if(err){
	  next(err);
	}else{
	  console.log(result);
	  //查询到的是数据，直接将数组放入到响应的对象
      res.send({code:200,msg:'查找成功',data:result});
	}
  });
  
});



//导出路由器对象
module.exports=r;